﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ZOVNP.Model.Abstracts
{
    /// <summary> Интерфейс для менеджера настроек. </summary>
    public interface ISettingsManager
    {
        /// <summary> Получить общесистемные настройки. </summary>
        ISettingCollection SystemSettings { get; }

        /// <summary> Получить настройки текущего пользователя. </summary>
        ISettingCollection CurrentUserSettings { get; }

        /// <summary> Настройки среды выполнения. </summary>
        IEnvironmentSettings EnvironmentSettings { get; }

        /// <summary> Получение коллекции специфических настроек текущего пользователя. </summary>
        /// <typeparam name="T"> Тип объекта, к которому относятся специфические настройки. </typeparam>
        /// <param name="ObjectInstanceID"> Идентификатор объекта, к которому относятся настройки. </param>
        /// <returns> Коллекция настроек. </returns>
        ISettingCollection GetCurrentUserCustomSettings<T>(Guid ObjectInstanceID);
    }
}
